类和对象
1. 概述
在面向对象编程(OOP)中,类和对象是两个核心概念。类是对象的蓝图或模板,而对象是类的实例。通过类,我们可以定义对象的属性和行为。Ruby 是一种纯面向对象的语言,几乎所有的东西都是对象,包括数字、字符串和数组。
2. 类的定义
在 Ruby 中,类通过 class 关键字来定义。类的名称通常以大写字母开头。
示例代码
class Dog
# 类的定义
end
解释
class关键字用于定义一个类。Dog是类的名称,遵循驼峰命名法。end关键字表示类的定义结束。
3. 对象的创建
对象是类的实例。我们可以通过 new 方法来创建类的实例。
示例代码
my_dog = Dog.new
解释
Dog.new创建了一个Dog类的实例。my_dog是这个实例的引用。
4. 属性和方法
类可以包含属性和方法。属性是对象的状态,而方法是对象的行为。
4.1 属性
属性通常通过实例变量来表示,实例变量以 @ 开头。
示例代码
class Dog
def initialize(name)
@name = name
end
end
解释
initialize是类的构造方法,在创建对象时自动调用。@name是一个实例变量,表示狗的名字。
4.2 方法
方法定义了对象的行为。方法通过 def 关键字来定义。
示例代码
class Dog
def initialize(name)
@name = name
end
def bark
puts "#{@name} says: Woof!"
end
end
解释
bark是一个方法,表示狗的叫声。puts用于输出信息到控制台。
5. 访问属性和方法
在 Ruby 中,实例变量默认是私有的,不能直接访问。我们可以通过方法来访问和修改实例变量。
5.1 访问方法
访问方法通常命名为 getter 方法。
示例代码
class Dog
def initialize(name)
@name = name
end
def name
@name
end
def bark
puts "#{@name} says: Woof!"
end
end
解释
name方法返回@name实例变量的值。
5.2 修改方法
修改方法通常命名为 setter 方法。
示例代码
class Dog
def initialize(name)
@name = name
end
def name
@name
end
def name=(new_name)
@name = new_name
end
def bark
puts "#{@name} says: Woof!"
end
end
解释
name=方法用于修改@name实例变量的值。
6. 实践练习
练习 1: 创建一个 Car 类
- 定义一个
Car类。 - 添加一个
initialize方法,接受make和model作为参数,并将它们存储在实例变量中。 - 添加一个
start方法,输出 "The car is starting."。 - 添加
make和model的getter和setter方法。
练习 2: 创建一个 Book 类
- 定义一个
Book类。 - 添加一个
initialize方法,接受title和author作为参数,并将它们存储在实例变量中。 - 添加一个
display方法,输出书的标题和作者。 - 添加
title和author的getter和setter方法。
7. 总结
通过本教程,我们学习了如何在 Ruby 中定义类和创建对象。我们了解了如何定义属性和方法,并通过 getter 和 setter 方法来访问和修改实例变量。类和对象是 Ruby 面向对象编程的基础,掌握这些概念对于进一步学习 Ruby 编程至关重要。
8. 下一步
接下来,我们将学习 Ruby 中的继承和模块,这将帮助我们更好地组织和重用代码。